import { defineStore } from "pinia";

export const useUserStore = defineStore("user", {
  state: () => ({
    userInfo: null,
    token: "",
  }),

  getters: {
    // 获取用户ID
    userId: (state) => state.userInfo?.userId || "",
  },

  actions: {
    // 保留此方法以兼容现有代码，但实际上不需要手动调用了
    hydrateFromStorage() {
      // 插件会自动处理，这个方法现在是空操作
      console.log("hydrateFromStorage 已被持久化插件接管，无需手动调用");
    },

    setUserInfo(payload) {
      this.userInfo = payload || null;
      // ✅ 不需要手动 setStorageSync，插件会自动持久化
    },

    setToken(token) {
      this.token = token || "";
      // ✅ 不需要手动 setStorageSync，插件会自动持久化
    },

    clearUserInfo() {
      this.userInfo = null;
      this.token = "";
      // ✅ 不需要手动 removeStorageSync，插件会自动清理
    },
  },

  // 🔥 启用持久化 - 使用 unistorage 配置
  unistorage: true, // 开启后对 state 的数据读写都将持久化
});
